//配置axios
import axios from "axios";

// 引入element-ui的弹框
import { MessageBox } from "element-ui";

//引入storage方法
import storage from "./storage";

//会变成原型对象
let http = axios.create({
  baseURL: "/api",
  timeout: 5000, //超时设置
  withCredentials: true, // 携带本地凭据，比如cookie
});

//全局请求拦截器：对接口的请求进行批量统一的处理
http.interceptors.request.use((config) => {
  //先获取本地token，携带给后端
  let token = storage.get("qf-token");
  //   console.log(token);
  config.headers["authorization"] = token; // 页面不会再显示验证失败
  //config是所有的请求配置
  return config; //放行  不return 没有办法将请求真发送出去
});

//全局响应拦截器：统一对错误进行处理
http.interceptors.response.use((config) => {
  // console.log('config',config)
  let { state, msg } = config.data;
  if (!state) {
    //后台响应了错误的结果
    MessageBox({
      message: msg,
      title: "错误提示",
      type: "error ",
    });
  }
  return config; //如果不return axios请求就拿不到响应的结果
});

export default http;
